home *** CD-ROM | disk | FTP | other *** search
/ Trusted Irix /B 4.0.4 / Trusted-Irix B-4.0.1.iso / dist / eoe1.idb / usr / include / sys / fcntl.h.z / fcntl.h
C/C++ Source or Header  |  1992-04-03  |  4KB  |  111 lines

  1. #ifndef __SYS_FNCTL_H__
  2. #define __SYS_FNCTL_H__
  3.  
  4. /* Copyright (C) 1989 Silicon Graphics, Inc. All rights reserved.  */
  5. /*    Copyright (c) 1984 AT&T    */
  6. /*      All Rights Reserved      */
  7.  
  8. /*    THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T    */
  9. /*    The copyright notice above does not evidence any       */
  10. /*    actual or intended publication of such source code.    */
  11.  
  12. /*#ident    "@(#)kern-port:sys/fcntl.h    10.3"*/
  13. #ident    "$Revision: 3.24 $"
  14.  
  15. #include <sys/types.h>
  16.  
  17. /* flags for F_GETFL, F_SETFL */
  18.  
  19. #define    FNDELAY    0x04        /* Non-blocking I/O */
  20. #define    FAPPEND    0x08        /* append (writes guaranteed at the end) */
  21. #define FSYNC    0x10        /* synchronous write option */
  22. #define FRCACH  0x20        /* Used for file and record locking cache*/
  23. #define FASYNC    0x40        /* interrupt-driven I/O for sockets */
  24. #define FNONBLK    0x80        /* POSIX: Non-blocking I/O */
  25.  
  26. /* open only modes */
  27.  
  28. #define    FCREAT    0x100        /* create if nonexistent */
  29. #define    FTRUNC    0x200        /* truncate to zero length */
  30. #define    FEXCL    0x400        /* error if already created */
  31. #define FNOCTTY    0x800        /* POSIX: don't make this tty control term */
  32.  
  33. /* Flag values accessible to open(2) and fcntl(2) */
  34. /*  (The first three can only be set by open) */
  35. #define    O_RDONLY    0
  36. #define    O_WRONLY    1
  37. #define    O_RDWR        2
  38. #define O_ACCMODE    0x3    /* mask for O_RDONLY, WRONLY, and RDWR */
  39. #define    O_NDELAY    FNDELAY
  40. #define    O_APPEND    FAPPEND
  41. #define O_SYNC        FSYNC
  42. #define O_NONBLOCK    FNONBLK
  43.  
  44. /* Flag values accessible only to open(2) */
  45. #define    O_CREAT    FCREAT        /* open with file create (uses 3rd open arg)*/
  46. #define    O_TRUNC    FTRUNC        /* open with truncation */
  47. #define    O_EXCL    FEXCL        /* exclusive open */
  48. #define O_NOCTTY FNOCTTY    /* POSIX: don't assign as controlling tty */
  49.  
  50. /* fcntl(2) requests */
  51. #define    F_DUPFD        0    /* Duplicate fildes */
  52. #define    F_GETFD        1    /* Get fildes flags */
  53. #define    F_SETFD        2    /* Set fildes flags */
  54. #define    F_GETFL        3    /* Get file flags */
  55. #define    F_SETFL        4    /* Set file flags */
  56. #define    F_GETLK        5    /* Get file lock */
  57. #define    F_SETLK        6    /* Set file lock */
  58. #define    F_SETLKW    7    /* Set file lock and wait */
  59. #define F_CHKFL        8    /* Check legality of file flag changes */
  60. #define    F_ALLOCSP    10    /* reserved */
  61. #define    F_FREESP    11    /* reserved */
  62. #define    F_SETBSDLK    12    /* Set Berkeley record lock */
  63. #define    F_SETBSDLKW    13    /* Set Berkeley record lock and wait */
  64. #define    F_RGETLK     20    /* Test a remote lock to see if it is blocked */
  65. #define    F_RSETLK     21    /* Set or unlock a remote lock */
  66. #define    F_RSETLKW     22    /* Set or unlock a remote lock and wait */
  67.  
  68. /* only for sockets */
  69. #define    F_GETOWN    10    /* Get owner */
  70. #define    F_SETOWN    11    /* Set owner */
  71.  
  72. #if !(defined(_LANGUAGE_C_PLUS_PLUS) && defined(_BSD_COMPAT))
  73. /* file segment locking set data type - information passed to system by user */
  74.  
  75. #ifdef _POSIX_SOURCE
  76. struct flock {
  77.     short    l_type;
  78.     short    l_whence;
  79.     off_t    l_start;
  80.     off_t    l_len;        /* len = 0 means until end of file */
  81.     pid_t    l_pid;
  82. };
  83. #else
  84. struct flock {
  85.     short    l_type;
  86.     short    l_whence;
  87.     off_t    l_start;
  88.     off_t    l_len;        /* len = 0 means until end of file */
  89.     short    l_sysid;
  90.     short    l_pid;
  91. };
  92. #endif    /* ifdef _POSIX_SOURCE */
  93.  
  94. #endif    /* !(C++ && BSD) */
  95.  
  96. /* file segment locking types */
  97.     /* Read lock */
  98. #define    F_RDLCK    01
  99.     /* Write lock */
  100. #define    F_WRLCK    02
  101.     /* Remove lock(s) */
  102. #define    F_UNLCK    03
  103. #define FD_CLOEXEC    0x1    /* fcntl 1 in lo bit of arg parameter */
  104.  
  105. #ifdef sgi            /* NOTE: this flag only check for gfx procs */
  106.                 /* and is for sgi internal use only */
  107. #define FD_NODUP_FORK    0x2    /* don't dup this fd on fork (sproc overrides)*/
  108. #endif
  109.  
  110. #endif /* !__SYS_FNCTL_H__ */
  111.